package com.ns.core.vo.router;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * 动态菜单
 *
 * @author : liaowei
 * @version : v1.0.0
 * @since : 2024-09-13 20:54:11
 **/
@Data
@ToString
@Accessors(chain = true)
public class RouterVO implements Serializable {
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 菜单名
     */
    private String name;

    /**
     * 菜单编码
     */
    private String code;
    /**
     * 地址
     */
    private String path;

    /**
     * 组件
     */
    private String component;

    /**
     * 菜单等级
     */
    private Integer level;

    /**
     * 是否隐藏
     */
    private Integer hidden;

    /**
     * 公用表示 0 非 1 是
     */
    private Integer commonFlag;
    /**
     * 子菜单唯一时，根菜单显示标识
     */
    private Integer alwaysShow;

    /**
     * 所属租户
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long rid;
    /**
     * 序号
     */
    private Long sort;


    /**
     * 状态 0 停用 1 启用
     */
    private Integer status;

    /**
     * meta
     */
    private RouterMetaVO meta;


    /**
     * 子菜单
     */
    private List<RouterVO> children;
}
